home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / atmbr2684.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  3KB  |  118 lines

  1. #ifndef _LINUX_ATMBR2684_H
  2. #define _LINUX_ATMBR2684_H
  3.  
  4. #include <linux/types.h>
  5. #include <linux/atm.h>
  6. #include <linux/if.h>        /* For IFNAMSIZ */
  7.  
  8. /*
  9.  * Type of media we're bridging (ethernet, token ring, etc)  Currently only
  10.  * ethernet is supported
  11.  */
  12. #define BR2684_MEDIA_ETHERNET    (0)    /* 802.3 */
  13. #define BR2684_MEDIA_802_4    (1)    /* 802.4 */
  14. #define BR2684_MEDIA_TR        (2)    /* 802.5 - token ring */
  15. #define BR2684_MEDIA_FDDI    (3)
  16. #define BR2684_MEDIA_802_6    (4)    /* 802.6 */
  17.  
  18.                     /* used only at device creation:  */
  19. #define BR2684_FLAG_ROUTED    (1<<16)    /* payload is routed, not bridged */
  20.  
  21. /*
  22.  * Is there FCS inbound on this VC?  This currently isn't supported.
  23.  */
  24. #define BR2684_FCSIN_NO        (0)
  25. #define BR2684_FCSIN_IGNORE    (1)
  26. #define BR2684_FCSIN_VERIFY    (2)
  27.  
  28. /*
  29.  * Is there FCS outbound on this VC?  This currently isn't supported.
  30.  */
  31. #define BR2684_FCSOUT_NO    (0)
  32. #define BR2684_FCSOUT_SENDZERO    (1)
  33. #define BR2684_FCSOUT_GENERATE    (2)
  34.  
  35. /*
  36.  * Does this VC include LLC encapsulation?
  37.  */
  38. #define BR2684_ENCAPS_VC    (0)    /* VC-mux */
  39. #define BR2684_ENCAPS_LLC    (1)
  40. #define BR2684_ENCAPS_AUTODETECT (2)    /* Unsuported */
  41.  
  42. /*
  43.  * Is this VC bridged or routed?
  44.  */
  45.  
  46. #define BR2684_PAYLOAD_ROUTED   (0)
  47. #define BR2684_PAYLOAD_BRIDGED  (1)
  48.  
  49. /*
  50.  * This is for the ATM_NEWBACKENDIF call - these are like socket families:
  51.  * the first element of the structure is the backend number and the rest
  52.  * is per-backend specific
  53.  */
  54. struct atm_newif_br2684 {
  55.     atm_backend_t backend_num;    /* ATM_BACKEND_BR2684 */
  56.     int media;        /* BR2684_MEDIA_*, flags in upper bits */
  57.     char ifname[IFNAMSIZ];
  58.     int mtu;
  59. };
  60.  
  61. /*
  62.  * This structure is used to specify a br2684 interface - either by a
  63.  * positive integer (returned by ATM_NEWBACKENDIF) or the interfaces name
  64.  */
  65. #define BR2684_FIND_BYNOTHING    (0)
  66. #define BR2684_FIND_BYNUM    (1)
  67. #define BR2684_FIND_BYIFNAME    (2)
  68. struct br2684_if_spec {
  69.     int method;        /* BR2684_FIND_* */
  70.     union {
  71.         char ifname[IFNAMSIZ];
  72.         int devnum;
  73.     } spec;
  74. };
  75.  
  76. /*
  77.  * This is for the ATM_SETBACKEND call - these are like socket families:
  78.  * the first element of the structure is the backend number and the rest
  79.  * is per-backend specific
  80.  */
  81. struct atm_backend_br2684 {
  82.     atm_backend_t backend_num;    /* ATM_BACKEND_BR2684 */
  83.     struct br2684_if_spec ifspec;
  84.     int fcs_in;        /* BR2684_FCSIN_* */
  85.     int fcs_out;        /* BR2684_FCSOUT_* */
  86.     int fcs_auto;        /* 1: fcs_{in,out} disabled if no FCS rx'ed */
  87.     int encaps;        /* BR2684_ENCAPS_* */
  88.     int has_vpiid;        /* 1: use vpn_id - Unsupported */
  89.     __u8 vpn_id[7];
  90.     int send_padding;    /* unsupported */
  91.     int min_size;        /* we will pad smaller packets than this */
  92. };
  93.  
  94. /*
  95.  * The BR2684_SETFILT ioctl is an experimental mechanism for folks
  96.  * terminating a large number of IP-only vcc's.  When netfilter allows
  97.  * efficient per-if in/out filters, this support will be removed
  98.  */
  99. struct br2684_filter {
  100.     __be32 prefix;        /* network byte order */
  101.     __be32 netmask;        /* 0 = disable filter */
  102. };
  103.  
  104. struct br2684_filter_set {
  105.     struct br2684_if_spec ifspec;
  106.     struct br2684_filter filter;
  107. };
  108.  
  109. enum br2684_payload {
  110.     p_routed = BR2684_PAYLOAD_ROUTED,
  111.     p_bridged = BR2684_PAYLOAD_BRIDGED,
  112. };
  113.  
  114. #define BR2684_SETFILT    _IOW( 'a', ATMIOC_BACKEND + 0, \
  115.                 struct br2684_filter_set)
  116.  
  117. #endif /* _LINUX_ATMBR2684_H */
  118.